Working environments

SNiFF+ uses 4 different kinds of working environments:

- Repository Working Environment (RWE)
- Shared Source Working Environment (SSWE)
- Shared Object Working Environment (SOWE)
- Private Working Environment (PWE)

The RWE (Repository Working Environment)
Your team members access and modify a permanent shared data Repository using commands provided by your underlying configuration management and version-control (CMVC) tool.
SNiFF+ provides an interface to your CMVC tool. This interface needs to know the location of your Repository.
You provide this information by defining a Repository Working Environment (RWE), which specifies the root directory of your Repository.
In this tutorial, we will be using RCS, the CMVC tool provided with the SNiFF+ package.
The SSWE (Shared Source Working Environment)
SNiFF+ requires you to specify the root directory under which your team's shared source code is located. The files and directories under this root directory access your team's Repository. At regular intervals, all these files and directories are updated to reflect the most current state of your team's software system.
When creating software systems from scratch, your team's (Working Environments Administrator's) first job is to populate this root directory with source code. For existing software systems, your team will already have such a central location.
In either case, once you have such a root directory, you have to tell SNiFF+ where it is. You do this by defining a Shared Source Working Environment (SSWE).
All team members see, or share, all the source files in the SSWE. When browsing the source files, this view is read-only. When editing source files, team members work on local copies of the shared source files they want to modify--they never directly modify the shared source files in the SSWE. The view to all other source files remains read-only.
The SOWE (Shared Object Working Environment)
Just like with shared source code, SNiFF+ also requires you to specify a central location for your team's shared object files. In SNiFF+, you define one Shared Object Working Environment (SOWE), which specifies the root directory containing these files, for each target platform.
SOWEs serve as shared repositories for your team's most current and stable object code. During an update of an SOWE, source files in the SSWE are compiled and the resulting object code is stored in the SOWE.
An essential aspect of SOWEs is avoiding unnecessary builds in Private Working Environments (see below) that access them.
The PWE (Private Working Environment)
Developers must be able to work in isolation from other team members. They need their own workspaces in which they can edit, compile and debug projects without interfering with the work of other team members. Furthermore, they continually need to have access to their software system's most current source code and object code base.
SNiFF+ supports this by allowing each member of a team to work in an isolated workspace. In SNiFF+, you define a Private Working Environment (PWE) to specify the root directory of each team member's workspace.
You can go through the entire edit/compile/debug cycle in your PWE. In your PWE, you have a read-only view to the shared source files located in your team's SSWE. When you need to modify shared source files, you check out the necessary files from your team's Repository. When you're satisfied that the changes you've made are error-free, you check the modified files back into your team's Repository. The next time your team's SSWE is updated, these changes are incorporated, and the shared source files in the SSWE once again reflect the most current state of your software system.